التكامل المستمر: تثبيت Concourse CI على أوبنتو
مقدمة
في بيئة تطوير البرمجيات الحديثة، أصبح التكامل المستمر (CI) جزءًا أساسيًا من العمليات اليومية للمطورين. يُعتبر Concourse CI أحد الأنظمة القوية والمفتوحة المصدر التي توفر منصة مستدامة لعمليات التكامل المستمر والتسليم المستمر (CD). بفضل بنيته المرنة وواجهته القوية، يُستخدم Concourse CI لتسهيل أتمتة بناء البرمجيات واختبارها، فضلاً عن نشرها. في هذا المقال، سنستعرض طريقة تثبيت Concourse CI على توزيعة أوبنتو، مع شرح كيفية إعداد بيئة العمل والبدء باستخدام النظام.
ما هو Concourse CI؟
Concourse CI هو نظام مفتوح المصدر لأتمتة عمليات التكامل المستمر والتسليم المستمر. يُصمم بشكل خاص لتقديم بنية تتيح للفرق تطوير البرمجيات بنجاح عبر قنوات متعددة من خلال أتمتة الاختبارات، بناء الكود، وعمليات النشر. يعتبر Concourse CI أحد أنظمة CI الأكثر تطورًا بفضل آلية العمل التي تعتمد على “التدفقات” (Pipelines)، والتي توفر تنسيقًا مرنًا لتنفيذ المهام وفقًا لاحتياجات المشروع.
المزايا الرئيسية لاستخدام Concourse CI
-
بنية قابلة للتوسيع: يسمح Concourse بتوسيع البنية من خلال العناصر (resources) و الوظائف (tasks) القابلة للتخصيص.
-
الشفافية والتتبع: يوفر Concourse واجهة رسومية تفاعلية تسمح للمطورين بمراقبة حالة الأنابيب (Pipelines) والتدفقات.
-
المرونة: يتمتع بمرونة كبيرة من خلال إمكانية تكييف الأدوات لتلبية احتياجات كل مشروع.
-
التوافق مع الأدوات الأخرى: يمكن دمج Concourse مع مجموعة من الأدوات مثل GitHub، Docker، Kubernetes، وغيرها.
المتطلبات الأساسية لتثبيت Concourse CI على أوبنتو
قبل البدء بتثبيت Concourse CI على توزيعة أوبنتو، هناك بعض المتطلبات الأساسية التي يجب التأكد منها:
-
Ubuntu 20.04 LTS أو أحدث: لضمان التوافق الكامل مع النظام.
-
Docker: يجب أن يكون Docker مثبتًا على النظام لأنه يستخدم كخدمة أساسية لتشغيل الحاويات (containers) الخاصة بـ Concourse.
-
قدرة على الوصول إلى الإنترنت: لتنزيل الحزم والمكونات المطلوبة.
الخطوات الأساسية لتثبيت Concourse CI على أوبنتو
1. تحديث النظام
أولًا، يجب تحديث النظام لضمان أنه يحتوي على أحدث التحديثات والحزم المتاحة. افتح الطرفية (Terminal) وقم بتشغيل الأمر التالي:
bashsudo apt update && sudo apt upgrade -y
2. تثبيت Docker
Concourse CI يعتمد بشكل أساسي على Docker لإدارة الحاويات. لذلك، من الضروري تثبيت Docker على أوبنتو. قم بتشغيل الأوامر التالية لتثبيت Docker:
bashsudo apt install -y docker.io
بعد تثبيت Docker، تحقق من تشغيل الخدمة باستخدام الأمر:
bashsudo systemctl start docker
يمكنك التأكد من أن Docker يعمل بشكل صحيح باستخدام الأمر:
bashsudo systemctl status docker
3. تثبيت Concourse CI
يتم تثبيت Concourse CI من خلال تحميل الصور الخاصة به عبر Docker. سنقوم بتحميل وتشغيل صورة Concourse باستخدام الحاويات.
أولاً، نحتاج إلى تحميل صورة Concourse CI الرسمية عبر Docker. يمكنك تنفيذ الأمر التالي:
bashsudo docker pull concourse/concourse
4. تشغيل Concourse CI باستخدام Docker
بمجرد تحميل الصورة، يمكننا تشغيل Concourse باستخدام الأمر التالي. سيقوم هذا الأمر بإنشاء حاوية تحتوي على كل المكونات اللازمة لتشغيل Concourse:
bashsudo docker run -d --name concourse -p 8080:8080 \
-e CONCOURSE_BASIC_AUTH_USERNAME=test \
-e CONCOURSE_BASIC_AUTH_PASSWORD=test123 \
concourse/concourse
-
-d: تشغيل الحاوية في الخلفية. -
--name concourse: تعيين اسم للحاوية. -
-p 8080:8080: ربط المنفذ 8080 داخل الحاوية مع المنفذ 8080 على النظام المضيف. -
-e CONCOURSE_BASIC_AUTH_USERNAME=test -e CONCOURSE_BASIC_AUTH_PASSWORD=test123: تعيين اسم المستخدم وكلمة المرور لتسجيل الدخول إلى واجهة Concourse.
5. الوصول إلى واجهة Concourse CI
بعد تشغيل الحاوية بنجاح، يمكنك الوصول إلى واجهة Concourse CI عبر المتصفح. افتح متصفح الإنترنت وادخل العنوان التالي:
arduinohttp://localhost:8080
سيطلب منك إدخال اسم المستخدم وكلمة المرور اللذين قمت بتحديدهما في الخطوة السابقة (test و test123).
6. إعداد الأنابيب (Pipelines)
بمجرد الوصول إلى واجهة Concourse، يمكنك البدء في إنشاء الأنابيب (Pipelines). الأنابيب هي عبارة عن مجموعة من الخطوات التي تحدد كيف يجب على النظام بناء وتوزيع البرمجيات. يمكن إعداد الأنابيب باستخدام واجهة المستخدم الرسومية أو عبر ملفات YAML.
لنقوم بإنشاء أنبوب بسيط، يمكن استخدام ملف YAML لتحديد الوظائف (tasks) والمصادر (resources) الخاصة بك. مثال على ملف Pipeline بسيط:
yamlresources:
- name: git-repo
type: git
source:
uri: https://github.com/username/repository.git
jobs:
- name: build
plan:
- get: git-repo
- task: build-task
config:
platform: linux
image_resource:
type: docker-image
source: {repository: "golang", tag: "latest"}
run:
path: go
args: ["build"]
7. إضافة وتشغيل الأنابيب
يمكنك إضافة الأنابيب باستخدام الأوامر التالية عبر fly, وهي الأداة المساعدة لإدارة الأنابيب في Concourse.
أولًا، قم بتحميل أداة fly عبر الرابط التالي:
bashwget https://github.com/concourse/concourse/releases/download/v7.4.0/fly-7.4.0-linux-amd64
chmod +x fly-7.4.0-linux-amd64
sudo mv fly-7.4.0-linux-amd64 /usr/local/bin/fly
بعد ذلك، قم بتسجيل الدخول إلى خادم Concourse باستخدام:
bashfly -t tutorial login -c http://localhost:8080 -u test -p test123
ثم قم بإنشاء الأنابيب باستخدام الأمر:
bashfly -t tutorial set-pipeline -p my-pipeline -c pipeline.yml
8. مراقبة الأنابيب
بمجرد إعداد الأنابيب، يمكنك مراقبة حالتها عبر واجهة المستخدم الرسومية أو باستخدام أداة fly من خلال الأمر:
bashfly -t tutorial pipelines
إدارة Concourse CI
تتضمن إدارة Concourse CI عدة مهام أساسية مثل:
-
إدارة الأنابيب: يمكنك إضافة أو تعديل أو حذف الأنابيب باستخدام أداة
fly. -
إدارة الحاويات: يمكنك إدارة الحاويات عبر Docker، مثل إيقاف وتشغيل الحاويات.
-
مراقبة الأداء: توفر Concourse CI أدوات لمراقبة الأداء والتحقق من حالة الأنابيب بشكل مستمر.
الخاتمة
من خلال هذه الخطوات، يمكنك تثبيت وتكوين Concourse CI على توزيعة أوبنتو بكفاءة. يتيح لك النظام بناء أنابيب قوية لتنفيذ عمليات التكامل المستمر والتسليم المستمر، مما يعزز من تحسين سير العمل في تطوير البرمجيات. بعد التثبيت، يمكنك تخصيص البيئة لتلبية احتياجات مشروعك وتنفيذ الأتمتة بشكل مرن وفعال.

